'use strict';

const { Service } = require('egg');

class UserService extends Service {
  async createUser(user_name, password) {
    const result = await this.app.model.User.create({ user_name, password });
    return result.dataValues;
  }
  async getUserInfo({ id, user_name, password, is_admin }) {
    const whereOpt = {};
    id && Object.assign(whereOpt, { id });
    user_name && Object.assign(whereOpt, { user_name });
    password && Object.assign(whereOpt, { password });
    is_admin && Object.assign(whereOpt, { is_admin });

    const result = await this.app.model.User.findOne({
      attributes: ['id', 'user_name', 'password', 'is_admin'],
      where: whereOpt,
    });
    return result ? result.dataValues : null;
  }
  async updateById({ id, user_name, password, is_admin }) {
    const whereOpt = { id };
    const newUser = {};

    user_name && Object.assign(newUser, { user_name });
    password && Object.assign(newUser, { password });
    is_admin && Object.assign(newUser, { is_admin });

    const res = await this.app.model.User.update(newUser, { where: whereOpt });

    return res[0] > 0 ? true : false;
  }
}
module.exports = UserService;
